<%@ page language="java" import="com.google.gson.Gson" pageEncoding="UTF-8"%>
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="up7.biz.FolderSchema" %>
<%@ page import="up7.biz.PathGuidBuilder" %>
<%@ page import="up7.biz.up7_biz_event" %>
<%@ page import="up7.database.sql.SqlFile" %>
<%@ page import="up7.model.FileInf" %>
<%@ page import="up7.utils.PathTool" %>
<%@ page import="java.io.File" %>
<%
    out.clear();
    /*
        文件夹初始化
          创建层级结构
          添加到数据表

        更新记录：
            2023-03-06 完善逻辑
            2017-05-03 仅将文件夹信息保存在redis中。
            2016-04-09 完善存储逻辑。
            2014-08-05 修复BUG，上传文件夹如果没有子文件夹时报错的问题。
            2014-07-23 创建

        JSON格式化工具：http://tool.oschina.net/codeformat/json
        POST数据过大导致接收到的参数为空解决方法：http://sishuok.com/forum/posts/list/2048.html
    */
    String id 		= request.getParameter("id");
    String pathLoc 	= request.getParameter("pathLoc");
    String sizeLoc 	= request.getParameter("sizeLoc");
    String lenLoc 	= request.getParameter("lenLoc");
    String uid 		= request.getParameter("uid");
    String fCount	= request.getParameter("filesCount");
    String callback = request.getParameter("callback");
    pathLoc			= PathTool.url_decode(pathLoc);

    File ps            = new File(pathLoc);
    FileInf f          = new FileInf();
    f.nameLoc          = ps.getName();
    f.nameSvr          = f.nameLoc;
    f.id               = id;
    f.pathLoc          = pathLoc;
    f.sizeLoc          = sizeLoc;
    f.lenLoc           = Long.parseLong(lenLoc);
    f.fileCount        = Integer.parseInt(fCount);
    f.fdTask           = true;
    f.uid              = uid;
    //生成路径
    PathGuidBuilder pb = new PathGuidBuilder();
    f.pathSvr          = pb.genFolder(f.uid, f.id, f.nameLoc);
    f.pathSvr          = f.pathSvr.replace("\\","/");//服务器全部使用反斜杠
    if(!PathTool.mkdir(f.pathSvr))
    {
        out.clear();
        out.write("create dir schema error");
        response.setStatus(500);
        return;
    }

    //创建层级结构
    FolderSchema fst = new FolderSchema();
    if(!fst.create(f))
    {
        out.clear();
        out.write("create dir schema error");
        response.setStatus(500);
        return;
    }

    //添加到数据表
    SqlFile.build().add(f);

    //触发事件
    up7_biz_event.folder_create(f);

    Gson gson   = new Gson();
    String json = gson.toJson(f);
    json        = PathTool.url_encode(json);
    json        = callback + "({\"value\":\"" + json + "\"})";//返回jsonp格式数据。
    out.write(json);
%>